home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacWorld 1999 July
/
Macworld (1999-07).dmg
/
Shareware World
/
Info
/
For Developers
/
Mops 3.4.sea
/
Mops source
/
Asm Source
/
BuildRegMask
< prev
next >
Wrap
Text File
|
1992-09-14
|
1KB
|
62 lines
\ BuildRegMask ReeseWarner 5/13
\ for MOVEM
\ 03/06/86 GDC fixed MOVEM
\ Aug86 mrh RevMask added for fix to MOVEM
0 -> dlevel
operand EXPTR
objPtr OPND class_is operand \ Will point to either OP1 or OP2
: REGBIT { mode reg# -- n }
1
reg# mode AnMode =
IF 8 +
ELSE mode FPctlRegMode = IF 10 + THEN
THEN
<< ;
: BuildRegMask { opndPtr FP? \ tokentype work -- regMask }
opndPtr -> opnd 0 -> work
BEGIN
nextToken -> tokentype
1st: token dup & ; =
IF ( comment )
drop #tib @ -> pos true
ELSE
& , = tokentype eol = or
THEN
( end of field? )
NWHILE
msg" in WHILE "
1st: token & / =
IF
msg" IT'S A / "
mode: opnd reg: opnd regBit or> work
opnd getOp
ELSE
msg" IT'S A something else "
exPtr getOp
mode: opnd mode: exPtr =
NIF 210 asmError
ELSE
reg: exPtr 1+ reg: opnd
DO
mode: opnd i regBit or> work
LOOP
THEN
THEN
REPEAT
mode: opnd reg: opnd regBit or> work
work ;
: REVMASK { mask -- mask' } \ Reverses the mask bits for predecrement mode.
0
16 FOR
2* mask 1 and or
mask 2/ -> mask
NEXT ;